UNIX MAGAZINE 1992年5月号

キーフレーズ

UNIX MAGAZINE ファイル コマンド システム nadia 1992 000 SPARC ネットワーク フォント 文字列 shell Sun StrEdArray Subject index プログラム ディレクトリ Message ソフトウェア const メッセージ シリーズ 指定 make NEWS 場合 ワークステーション station DEC Computer Nemacs 000000 command husband Windows SPARCstation アプリケーション 実行 機能 ウインドウ フィールド 対応 Macintosh 文字 記事 DECstation フォルダー 表示 from ディスク usr サポート データ 使用 MHz test sort オプション 利用 font for char 可能 int 環境 できる and Mar emacs FAX Newsgroups image 開発 indent NFS bin line X11 Motif naniwa comp 出力 必要 登録商標 newline シェル SCSI CD-ROM monkey 使っ creamy cat 5000 ツール return %

目次

main. 。という特定のファイルを作る方法ではなく、 . c で終る名前のファイルから . c の代わりに . 。を付けたフ ァイルを作成するという一般的なガ去を知っているので す。次に示すのが make コマンドが知っている規則で . C . 0 : ァイルから main. 。というファイルを作成するときに たとえは最初に挙げた例のように、 main. c というフ 成する方法を指定したことになります。 のファイルから .0 というサフィックスのファイルを作 定しています。この例の . c. 0 は、 . c というサフィックス です。この場合もサフィックスを利用して依存関係を指 の . 以降の部分 ) を利用してファイルを生成しているの ル名のサフィックスと呼ばれる部分 ( ファイル名の最後 じつは暗黙の規則の場合は、 make コマンドはファイ ありません。 ト ) は main. 0 で、 . c. 0 などという名前のファイルでは す。この例では、作成したいファイル ( つまりターゲッ いました。今回は、コロンの則に . c . 。と書いてありま コロンの後ろに依存するファイル名を並べて記述して これまでの例では、コロン ( : ) の前にターゲットを、 いくことにしましよう。 異なる方法で解釈されます。まず、この部分からみて この場合、依存関係を指定する部分はこれまでとは $(CC) $(CFLAGS) -c $ く という部分が、 . C . 0 : は、 1 この規則は、 make コマンドごとに異なります。出力ガ去については ( 値は一の。また、特殊マクロとしてくが使われていま は C コンパイラにオプションを渡すためのマクロです CC は C コンパイラを示すマクロ ( 値は (c) 、 CFLAGS ます。 は、前回お話ししたマクロ機能がいくつか使われてい 次は、インストラクションの指定部分です。ここで と解釈されるのです。 maln . 0 : maln . C 132 彳あします。 す。このくは、ソースファイル名 ( この例では mai Ⅱ . 0 ) に展開されます。つまり、さきほどの依存関係の指定の 行を展開した結果、コロンの右側に現れるファイル名に なります。 これらのマクロを展開すると、さきはどの実行例の、 CC ー 0 —C main. C という処理になることがお分かりいただけたでしよう make コマンドの知っていること ここで make コマンドが知っている暗黙の規則や、 前回お話しした make コマンドが知っているすべての マクロをみることにしましよう。これには、 make コ マンドのオプションを使います。前回説明した一 n オプ ションに加え、ここでは一 p と -f というオプションを 使います。 ーⅡは、 make が実際にはコマンドの実行をおこな わないようにするためのオプションでした。今回は make の知っていることを出力するために実行するの で、 make が何かほかのコマンドを実行しないように このオプションを指定します。 -p オプションは、マクロ定義や暗黙の規則を出力さ せるときに指定します。 また一 f オプションは、 Makefile を指定するための ものです。通常、 make コマンドはカレントディレクト リにある MakefiIe を読み込んで処理を開始しますが、 MakefiIe がないとほかのファイルも検索します。 では make コマンド自身が知っている情報を出力した いので、既存の Makefile などから情報を読み込まれて は困ります。したがって、すでに Makefile があると きは、これとは別に中身のない MakefiIe を作り、 オプションを使って指定します。 -f オプションの次に ファイル名を指定するとそのファイルが Makefile の代 わりに用いられます。ファイル名として一が用いられた 場合には、標準入力の内容が MakefiIe として使用され ます。 こでは、中身のないファイルに / dev / Ⅱ u Ⅱを 使うことにしましよう。 これらのオプションはまとめて指定することも可能 で、実際のコマンド行は、次のようになります。 UNIX MAGAZINE 1992.5

DZ—X 流プログラミング は、ファイル名を main. c とします。 % ls maln . C % cat main. C main ( ) printf ("main\n") ; この状態では、ディレクトリにはこのファイル (main. c) しかないものとします。 こで引数に main. 。を指定して make を起動する 今泉貴史 と、 % make malll. 0 CC ー 0 —C ma111. C などと表小され、 Makefile もないのに main. 0 という ファイルか作成されます。 今度は、 main. c のはかに main. 0 ができています。 この状態でもう 1 度 make を実行すると、 make がファ イルの更新状態を調べて、 % make main. 0 maxn. 0, is up tO date. 前々回から、 2 回続けて make コマンドについてお 話ししてきました。 UNIX 上でプログラムを作成する 場合、この make を使うとかなり楽をすることができ ます。基本的な機能やマクロ機能についてはこれまでに ひととおり説明しましたが、今回は、、暗黙の規則 " につ いてお話しします。 と main. 。が最新であることを表示します。 Makefile がないのに、どうして make が使えるので しようか ? しつは make は、 main. c という名則のファ イルから main. 。という名前のファイルを作成する方法 を知っているのです。これが、 make コマンドに備わっ ている暗黙の規則です。 暗黙の規則 暗黙の規則の例 いきなり、、暗黙の規則 " などといわれて、面喰らった 則例では、 main. c というファイルから main. 0 とい 方もいらっしやるかもしれません。そこで、まず例を挙 うファイルを作成しました。いくら Makefile なしにフ げてどのようなことができるのかをみていきましよう。 ァイルが作成できるといっても、ファイル名が main. c ます、簡単な C のソースファイルを 1 つ用意してく から main. 。などと決まっているのでは使いやすいも ださい ( 内容はどんなものでもかまいません ) 。 のとはいえません。そのために、 make は ma ⅲ . c から 131 UNIX MAGAZINE 1992.5

emaCS 入門 hell モー・のサプコマン M-x show—output—from—shell (C-c C-r) M-x kill—output—from—shell (C-c C-O) M-X copy—last—shell—input (C-c C-Y) M-x backward-kill—command (C-c C-w) M-x kill—shell—input (C-c C-u) M-x stop-shell—subjob (C-c C-z) M-x quit-shell-subjob (C-c C-\) M-x interrupt—shell—subjob (C-c C-c) M-x kill—shell—subj ob M-x shell—send-eof (C-c C-d) M-x shell-send-input ( く CR 〉 ) /unixmag/9X-NN 、 VEnet に置いてあるファイル ESHELL VNIX の環境変 explicit—shell—file—name shell—prompt—pattern shell—popd—regexp shell—pushd—regexp shell—cd—regexp Emacs L ド寥数 process-send- string process—send- region Emacs 関数 カレント行の文字列をシェルプロセスに送る シェルプロセスに EOF を送る シェルプロセスに KILL シグナルを送る シェルプロセスに INT シグナルを送る シェルプロセスに QUIT シグナルを送る シェルプロセスに STOP シグナルを送る 入力行を取り消す カーソルの直前の 1 単語を削除する 直前の入力行をコピーする 直前の出力結果の表示を抑制する 直前の出力結果の先頭を表示する 指定したリージョンの内容をシェルプロセスに送る 指定した文字列をシェルプロセスに送る SheII モードでディレクトリを移動するコマンドの正規表現 を設定 SheII モードで pushd にあたるコマンドの正規表現を設定 Shell モードで popd にあたるコマンドの正規表現を設定 シェルのプロンプトの正規表現を設定 シェノレ名を設定 Shell モードで起動するシェル名を設定する環境変数 本誌に掲載したサンフ。ル・プログラムなどのリストです。現 在のところ、倉肝リ号および 1991 年 10 月号 ~ 1992 年 4 月号 に掲載したものが置いてあります。なお、今月号のぶんは 4 月 末に公開します。 /unixmag/index 本誌の肝リ号から 1992 年 3 月号までの総目次です。検索用 の awk スクリプトも置いてあります。 なお、この /unixmag ディレクトリの下にあるファイルは、 ftp.ascii ・ co. jp [ 133.152.32.11 ] から anonymous FTP で ・ scale ・ xtermname /cmd/perl 入手することもできます。 130 ルごとに日氤分割して置いてあります。 サイズの大きなものについては、 compress の下に各ファイ いてあります。 ( 1992 年 3 月号 ) で紹介された RFC のうち、主要なものを置 連載中の「 UNIX Communication Notes 」第 45 回 /doc ASTEC の民田さんカ非った便利な Perl スクリプトです。 / 1 ang ・ Perl 4.019 16 のファイルに分割してあります。 Cnews アーカイプ、圧縮したものを、 10 のファイルに分割してあ ります。現在、「 UNIX Communication Notes 」で埆得見 しています。 ・ X11R5. fixes ・ less jless 97 、 less 177 、 jless 177 の 3 つを置いてあります。 ・ mtools 2.0 ・ nkf 1.4 ・ patch 2.0.12u5 /tex ・ lips3dvi 2.09a util の下に、 3 分割で置いてあります。 ・ Pk300 きわめて大きく 25 分割になっています。 ー運用については今月号の 160 べージと 1992 年 3 月号を参照して ください。 UNIX MAGAZINE 1992.5